perm filename SDIO[BNF,JRA] blob
sn#089194 filedate 1974-02-27 generic text, type T, neo UTF8
(SETQ IBASE (ADD1 7))
(DEFPROP SDIO
(NIL SDIOSET
SDIOINIT
IN
OUT
CH
QCH
UNCH
SPWD
*NIL*
$PDLSIZE
TOP
STK0
STK1
STK2
STK3
STK4
STK5
OUTPDL
OUTBKU
START
FUNFLAT
DOPRINT
FPRINT
FSIZE
SPACING
SPACES
OTST
OUTTST
<ATOM>
<ID>
<NUMBER>
<CHAR>
<UNARY_OP>
FCALL
>ATOM<
>ID<
RESERVEDWORDS
>NUMBER<
>CHAR<)
VALUE)
(DEFPROP SDIOSET
(LAMBDA NIL
(PROG NIL
(SETQ SCNVAL NIL)
(*PUTSYM (QUOTE SCNVAL) (GET (QUOTE SCNVAL) (QUOTE VALUE)))
(PUTSYM (TRUTH (QUOTE T)) (NILX (QUOTE *NIL*)) (STAR (QUOTE *)))))
EXPR)
(DEFPROP SDIOINIT
(LAMBDA NIL
(PROG NIL
(SETQ %%NIL (MAKNAM (QUOTE (N I L))))
(GETSYM SUBR
ATM
XXTRY
SCANINIT
LETTER
IGNORE
SCAN
SCANSET
SCANRESET
CHX
SPWDX
REDUCE
STK
PPOS
PDLSET
LOC
FLATC
NLRR
LRR
OUTRUL
MATCH)
(SCANINIT 176 12 42 42 45)
(IGNORE 12)
(IGNORE 175)
(IGNORE 11)
(IGNORE 15)
(IGNORE 40)
(LETTER 30)
(SETQ MAXLNG 105)
(SETQ FOOBAZ (LIST (QUOTE :CH) (INTERN (ASCII 0))))
(DEFPROP >ATOM< ((>ATOM< . 1)) SPACING)
(INITFN (FUNCTION SCANRESET))))
EXPR)
(DEFPROP IN
(LAMBDA (L) (PROG (X) (SCANSET) (START) (SETQ X (EVAL L)) (SCANRESET) (RETURN (COND (X (TOP)) (*NIL*)))))
FEXPR)
(DEFPROP OUT
(LAMBDA(%%L)
(PROG NIL (SETQ &&Z (FUNFLAT (LIST (LIST (OUTTST (EVAL (CADR %%L)) (CAR %%L)))))) (OTST MAXLNG)))
FEXPR)
(DEFPROP CH
(LAMBDA (L) (LIST (QUOTE CHX) (UNCH (CADR L))))
MACRO)
(DEFPROP QCH
(LAMBDA (L) (LIST (QUOTE CHX) (UNCH (CADR L))))
MACRO)
(DEFPROP UNCH
(LAMBDA (X) (LSH (MAKNUM (CAAR (GET X (QUOTE PNAME))) (QUOTE FIXNUM)) -13))
EXPR)
(DEFPROP SPWD
(LAMBDA (L) (LIST (QUOTE SPWDX) (CONS (QUOTE QUOTE) (CDR L))))
MACRO)
(DEFPROP *NIL*
(NIL . *NIL*)
VALUE)
(DEFPROP $PDLSIZE
(NIL . 1000)
VALUE)
(DEFPROP TOP
(LAMBDA NIL (PDL 4))
EXPR)
(DEFPROP STK0
(LAMBDA NIL (STK 0))
EXPR)
(DEFPROP STK1
(LAMBDA NIL (STK 1))
EXPR)
(DEFPROP STK2
(LAMBDA NIL (STK 2))
EXPR)
(DEFPROP STK3
(LAMBDA NIL (STK 3))
EXPR)
(DEFPROP STK4
(LAMBDA NIL (STK 4))
EXPR)
(DEFPROP STK5
(LAMBDA NIL (STK 5))
EXPR)
(DEFPROP OUTPDL
(LAMBDA(N)
(PROG NIL
L (COND ((MINUSP N) (RETURN (QUOTE BOTTOM))))
(PRINT (CONS (PDL (PLUS N N 1)) (PDL (PLUS N N))))
(SETQ N (SUB1 N))
(GO L)))
EXPR)
(DEFPROP OUTBKU
(LAMBDA(N)
(PROG NIL
L (COND ((ZEROP N) (RETURN (QUOTE BOTTOM))))
(PRINT (CONS (BACKUP (PLUS N N 1)) (BACKUP (PLUS N N))))
(SETQ N (SUB1 N))
(GO L)))
EXPR)
(DEFPROP START
(LAMBDA NIL
(PROG NIL
(COND ((GET (QUOTE PDL) (QUOTE SUBR))) (T (ARRAY BACKUP T $PDLSIZE) (ARRAY PDL T $PDLSIZE)))
(PDLSET (GET (QUOTE PDL) (QUOTE SUBR)) (GET (QUOTE BACKUP) (QUOTE SUBR)) (*QUO $PDLSIZE 2))))
EXPR)
(DEFPROP FUNFLAT
(LAMBDA(L)
(PROG (FL FLP M S K)
(SETQ S 0)
(SETQ FL (SETQ FLP (CONS NIL L)))
L0 (SETQ L (CDR FLP))
(COND ((NULL L) (RPLACA FL S) (RETURN FL))
((EQ (SETQ M (CAR L)) (QUOTE %DOWN)) (RPLACD FLP (SETQ L (CDR L)))
(COND ((ATOM (SETQ M (CAR L))) (SETQ K (FSIZE M)))
((EQ (CAR M) (QUOTE :CH))
(SETQ K (ADD1 (SPACING LAST (CADR M)))))
(T (RPLACA L (FUNFLAT M)) (SETQ K (CAAR L)))))
((ATOM M) (SETQ K (FSIZE M)))
((EQ (CAR M) (QUOTE :CH)) (SETQ K (ADD1 (SPACING LAST (CADR M)))))
((EQ (CAR M) (QUOTE %IN)) (SETQ K 0))
(T (RPLACD FLP M) (RPLACD (LAST M) (CDR L)) (GO L0)))
(SETQ S (PLUS S K))
(SETQ FLP (CDR FLP))
(GO L0)))
EXPR)
(DEFPROP DOPRINT
(LAMBDA(L)
(COND ((ATOM L) (SPACES LAST (QUOTE >ATOM<)) (PRIN1 L))
((EQ (CAR L) (QUOTE :CH)) (SPACES LAST (CADR L)) (PRINC (CADR L)))
((EQ (CAR L) (QUOTE %IN)))
(T (MAPC (FUNCTION DOPRINT) (CDR L)))))
EXPR)
(DEFPROP FPRINT
(LAMBDA(L POS)
(COND ((LESSP (PLUS (CAR L) POS) MAXLNG) (DOPRINT L))
(T
(PROG NIL
L (SETQ L (CDR L))
(COND ((NULL L) (RETURN NIL))
((ATOM (CAR L)) (DOPRINT (CAR L)))
((AND (EQ (CAAR L) (QUOTE %IN)) (NUMBERP (CADAR L))) (PPOS (PLUS POS (CADAR L)))
(SETQ LAST (QUOTE >CR<)))
((EQ (CAAR L) (QUOTE :CH)) (DOPRINT (CAR L)))
(T (FPRINT (CAR L) (LOC))))
(GO L)))))
EXPR)
(DEFPROP FSIZE
(LAMBDA (X) (PLUS (FLATSIZE X) (SPACING LAST (QUOTE >ATOM<))))
EXPR)
(DEFPROP SPACING
(LAMBDA(OLD NEW)
(PROG2 (SETQ LAST NEW)
(CDR (SASSOC NEW (GET OLD (QUOTE SPACING)) (FUNCTION (LAMBDA NIL (QUOTE (NIL . 0))))))))
EXPR)
(DEFPROP SPACES
(LAMBDA(OLD NEW)
(PROG (N) (SETQ N (SPACING OLD NEW)) L (COND ((ZEROP N) (RETURN NIL))) (TYO 40) (SETQ N (SUB1 N)) (GO L)))
EXPR)
(DEFPROP OTST
(LAMBDA (MAXLNG) (PROG NIL (TERPRI) (SETQ LAST NIL) (FPRINT &&Z 0) (TERPRI)))
EXPR)
(DEFPROP OUTTST
(LAMBDA (X F) (PROG NIL (START) (SETQ LAST NIL) (STORE (PDL 2) X) (RETURN (F 0))))
EXPR)
(DEFPROP <ATOM>
(LAMBDA NIL (PROG2 (SCANRESET) (ATM) (SCANSET)))
EXPR)
(DEFPROP <ID>
(LAMBDA NIL (%TRY 0))
EXPR)
(DEFPROP <NUMBER>
(LAMBDA NIL (%TRY 2))
EXPR)
(DEFPROP <CHAR>
(LAMBDA NIL (NLRR (QUOTE <CHAR>) (FUNCTION (LAMBDA NIL (COND ((%TRY 3) (INTERN (ASCII (STK 0)))) (*NIL*))))))
EXPR)
(DEFPROP <UNARY_OP>
(LAMBDA NIL NIL)
EXPR)
(DEFPROP FCALL
(LAMBDA (L) (CDR L))
MACRO)
(DEFPROP >ATOM<
(LAMBDA (X) (OUTRUL X (FUNCTION (LAMBDA NIL (COND ((NULL (STK1)) (NCONS %%NIL)) ((ATOM (STK1)) (STK1)))))))
EXPR)
(DEFPROP >ID<
(LAMBDA(X)
(OUTRUL X
(FUNCTION
(LAMBDA NIL
(COND ((NUMBERP (STK1)) NIL)
((MEMBER (STK1) RESERVEDWORDS) NIL)
((NULL (STK1)) (NCONS NIL))
((ATOM (STK1)) (STK1)))))))
EXPR)
(DEFPROP RESERVEDWORDS
(NIL)
VALUE)
(DEFPROP >NUMBER<
(LAMBDA (X) (OUTRUL X (FUNCTION (LAMBDA NIL (COND ((NUMBERP (STK1)) (STK1)))))))
EXPR)
(DEFPROP >CHAR<
(LAMBDA (X) (OUTRUL X (FUNCTION (LAMBDA NIL (LIST (QUOTE :CH) (STK1))))))
EXPR)
(SDIOSET)